package com.getword.service;

import com.getword.domain.Article;
import com.getword.web.model.ArticleCondition;
import com.getword.web.model.Result;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

public interface ArticleService {
    /**
     * 分页查询article
     * @return
     */
    Result getArticlePage(Pageable page, Article article);

    /**
     * 文章管理，分页查询，动态字段查询
     * @param page
     * @param article
     * @return
     */
    Page<Article> getArticles(Pageable page, Article article);

    Long getArticleCount(Pageable page, ArticleCondition condition);

    /**
     * 点赞
     */
    Result zan(String articleId);

    /**
     * 保存文章
     * @return
     */
    public Result saveArticle(Article article);

    Result getArticleById(String id);

    // 更新文章
    Result updateArticle(String html, String title, String articleId);

    // 删除文件
    Result deleteArticle(String id);

    /**
     * 判断文章是否被登录用户点赞了，
     * @param articleId
     * @return
     */
    Result getZanState(String articleId);
    /**
     * 判断文章是否被登录用户收藏了
     * @param articleId
     * @return
     */
    Result getCollectState(String articleId);

    /**
     * 收藏文章
     * @param articleId
     * @return
     */
    Result collect(String articleId);

    /**
     * 获取文章点赞个数
     * @param articleId
     * @return
     */
    Result zanCount(String articleId);
}
